Equipe SPARKS (Scalable and Pervasive softwARe and Knowledge Systems)
La construction des logiciels que l’on peut trouver dans de très nombreux équipements ou systèmes de notre vie courante est un processus difficile, source d’erreurs qu’il s’agit de minimiser voire de supprimer. Les logiciels aujourd’hui construits sont complexes par leur taille - certains peuvent comporter des millions, voire des dizaines de millions de lignes - par leur complexité combinatoire lorsqu’ils gèrent un grand nombre d’événements simultanés ou par leur architecture lorsqu’ils s’exécutent sur des processus multiples parfois mobiles, appartenant à des institutions indépendantes, très diversement interconnectées et pouvant être parfois isolées. Les services qu’ils doivent rendre sont multiples et bien souvent inconnus au moment de leur conception, le logiciel devant alors être capable d’évoluer et de s’adapter aux conditions changeantes de son exécution, mais aussi de son utilisateur.
Les logiciels sont aujourd'hui construit par assemblage (on parle de SOC : Service-Oriented Computing ou calcul à base de Services). Cette approche, sans être une révolution, vise comme toutes les précédentes à mieux réutiliser ce qui a déjà été produit et surtout à mieux contrôler l’ensemble du cycle de développement des logiciels. L'approche orienté services utilise la capacité de chaque service à s'auto-reconfiguration et s'auto-adapter en utilisant des auto-descriptions relativement fines et précises de chaque service. Ces descriptions ne peuvent être que de nature sémantique. Le monde du génie logiciel rejoint ainsi celui de la connaissance par la nécessité première de structurer, manipuler, échanger, partager ces descriptions essentielles pour l’assemblage des services. Il n’est donc pas surprenant que les différents travaux concernant l’auto-adaptabilité, la qualité de service concernent des chercheurs de ces deux communautés.
L'équipe Sparks recouvre en particulier les aspects liés à :
- la maîtrise de la complexité logicielle,
- la dynamicité et l’adaptabilité, en particulier en fonction de l’évolution du contexte d’exécution,
- la globalisation des calculs et leur déploiement sur des infrastructures distribuées,
- la description sémantique des processus et des données,
- la construction et l’utilisation des bases de connaissances.
L'équipe Sparks contient une “équipe projet commune” I3S-INRIA : wimmics: web-instrumented man-machine interactions, communities and semantics