En quoi consistent les Systèmes Logiciels Emergents ?

Partager par e-mail

De nos jours, en raison de l'évolution constante des environnements d'exploitation des systèmes logiciels, les systèmes logiciels modernes deviennent de plus en plus complexes et volumineux ce qui rend leur gestion et leur évolution difficiles pour une équipe de développeurs. Ces défis ont poussé la communauté informatique à développer des solutions visant à confier les responsabilités de l'adaptation et de la prise de décision au logiciel lui-même. Ces solutions sont appelées systèmes auto-adaptatifs. En outre, les systèmes logiciels modernes exigent un niveau élevé d'évolutivité, de fiabilité et de sécurité pour assurer le service des millions d'utilisateurs dans le monde. Dans un environnement dynamique, certains attributs peuvent évoluer en permanence. Cela rend un système logiciel plus difficile à gérer, ce qui fait de cette problématique un défi important à relever. Sur la base de cette limitation identifiée, les Systèmes Logiciels Emergents (SLE) visent à réduire l'effort initial de création de solutions autonomes et à prendre en charge des systèmes entièrement adaptatifs, capables d'apprendre de manière autonome la structure du système et son environnement de fonctionnement sans connaissances ou prédictions prédéfinies. Le rôle clé de ces modèles est de supprimer ou de réduire le rôle d'un programmeur dans les processus de composition, de maintenance et d'évolution d'un système logiciel.
Berger Levrault, à travers le programme de recherche "Architectures logicielles organiques et adaptatives"Nous souhaitons investir les avantages des ESS en explorant comment développer des systèmes intelligents capables de s'adapter (i.e., leurs microservices) en suivant les changements des besoins des utilisateurs et des environnements d'exploitation tout en minimisant le coût de cette adaptation. Comme première étape dans cet investissement, nous visons à comprendre les SSE existants en analysant un état de l'art des systèmes logiciels émergents et à tester certaines de leurs approches. Nous avons analysé 35 articles publiés recueillis dans les principales conférences et revues. Sur la base de cette analyse, nous construisons un arbre de taxonomie pour classer les approches ESS existantes principalement sur la base de leurs objectifs, du processus appliqué et de l'utilisabilité de ces approches.

Notre étude des SLE

L'analyse des multiples définitions des SLE nous a permis d'identifier leurs principales caractéristiques. De plus, l'implémentation de ces différentes caractéristiques dans les approches SLE nous a permis de créer une taxonomie de classification.

Définition des SLE

Les SLE peuvent être définis comme des logiciels composés d'unités logicielles réutilisables (par exemple, des composants, des services) qui sont capables de s'organiser de manière autonome pour mieux s'adapter à leur environnement d'utilisation.

Une taxonomie des approches des Systèmes Logiciels Emergents

Les approches peuvent être classées selon trois axes principaux :

  • l'objectif de l'utilisation des SLE,
  • le processus appliqué pour réaliser les SLE,
  • et la facilité d'utilisation des SLE.
Une taxonomie des logiciels émergents.
Figure 1 : Une taxonomie des logiciels émergents

Objectifs des SLE

L'objectif principal d'un SLE est de s'adapter. L'adaptation peut prendre différentes formes (exigences fonctionnelles ou non fonctionnelles). En génie logiciel, une exigence non fonctionnelle est une exigence qui spécifie des critères pouvant être utilisés pour juger du fonctionnement d'un système, plutôt que des comportements spécifiques. Elles s'opposent aux exigences fonctionnelles qui définissent des comportements ou des fonctions spécifiques.

Processus des SLE

Le processus des SLE correspond à l'ensemble des activités qui permettent la création des SLE. Il se compose principalement de trois aspects. Il s'agit de la façon de surveiller les systèmes et les environnements, la façon de composer des briques logicielles et la façon d'apprendre des informations qui facilitent l'adaptation.
Nous comprenons que pour s'adapter à un environnement, un logiciel doit être capable d'évaluer son état et comment il y réagit. Nous avons identifié 3 approches différentes de surveillance utilisées dans les approches LSE existantes, à savoir l' approche Proxy, le Sensor factory pattern couplé avec Observer design patternet Prometheus.
La définition de SLE est basée sur la composition d'une application entièrement fonctionnelle à partir de petites unités logicielles. Nous avons donc identifié les méthodes utilisées pour composer une application en SLE. Nous avons trouvé 4 méthodes principales, à savoir : Component based language, Service oriented architecture, Dependency injection et Goal driven composition.
Pour faire face à la variabilité croissante des environnements opérationnels modernes, l'homme ne peut pas généraliser à toutes les situations. Non seulement cela demande une expertise élevée, mais ça néglige les situations inattendues. Par conséquent, le processus d'apprentissage est essentiel pour la réalisation des SLE. La plupart des approches d'apprentissage sont basées sur Reinforcement Learning (RL). La RL est vaste, et de nombreuses techniques sont utilisées dans les articles étudiés. Nous classons les approches d'apprentissage en deux catégories, l'apprentissage basé sur RL et l'apprentissage basé sur d'autres types d'algorithmes. Nous avons également identifié si l'apprentissage se fait en ligne ou hors ligne.

Facilité d'utilisation des SLE

Dans cette branche, nous identifions quels domaines d'application conviennent pour appliquer les SLE, quels langages de programmation sont utilisés pour la mise en œuvre des SLE et comment les chercheurs évaluent leurs approches. Les principaux domaines d'application des SLE sont l'Internet des objets (IoT), les systèmes cyber-physiques, l'informatique des services Web et certaines solutions génériques. Nous n'avons pas fait d'évaluation qualitative des différentes approches découvertes en termes de mise en œuvre, mais nous avons évalué l'accessibilité et la capacité à maintenir certaines d'entre elles.

Conclusion

Les SLE visent à réduire l'effort initial pour créer des solutions autonomes, et à soutenir des systèmes entièrement adaptatifs qui peuvent apprendre de manière autonome la structure et l'environnement de fonctionnement du système sans connaissances ou prédictions prédéfinies. L'objectif était de comprendre les enjeux des SLE en réalisant un état de l'art et une taxonomie sur ce sujet. Pour ce faire, nous avons collecté 35 articles issus des principales conférences et revues dans le domaine des SLE. Ces 35 articles ont été analysés en profondeur pour construire un arbre taxonomique permettant de classer les approches SLE existantes. L'arbre taxonomique est basé sur les objectifs des SLE, les processus qu'ils appliquent et leur facilité d'utilisation. Nous espérons que cette étude offre une opportunité d'analyse et de réflexion sur l'état actuel de la recherche sur les systèmes logiciels émergents et ses progrès, et qu'elle permettra à Berger Levrault de mettre en œuvre des systèmes logiciels émergents.

par Elie Faye et Anas Shatnawi

Plus ...

Retour en haut