• Aucun résultat trouvé

historique, concepts et techniques

1.2 Origines, les définitions et les concepts

1.3.2 La visualisation scientifique interactive

La visualisation est un axe très important de la Réalité Virtuelle. L’interaction a rendu la visualisation, précisément la visualisation scientifique, plus expressive. Par conséquent, l’utilisateur peut rester en interaction avec ses calculs scientifiques et peut diriger la simulation dans le but de gagner un nouvel aperçu. Selon le psychologue Gibson[99], l’interaction est liée à deux concepts qui sont l’affordance, c-à-d la poten-tialité, et la perception. Le premier désigne les propriétés actionnables entre le monde et un individu. Le deuxième est inséparable de l’action car il faut agir pour perce-voir et inversement. Ce couplage entre l’action et la perception aide les scientifiques à mieux comprendre et analyser les données résultantes de la visualisation.

Figure 1.2 – L’interaction, l’immersion et l’autonomie en Réalité Virtuelle et la visualisation scienti-fique interactive ( [194]).

La visualisation scientifique interactive, est tout d’abord un moyen pour mieux comprendre un phénomène et de modifier ou améliorer chaque simulation avec moins d’immersion et d’autonomie que la Réalité Virtuelle (voir figure 1.2). Avant de décrire plus en détail les propriétés de la visualisation scientifique interactive, nous donnons sa définition telle qu’elle est énoncée par S. K. Card, J. D. Mackinlay et B. Shneiderman dans [60] :

« The use of computer-supported, interactive, visual representations of abstract data to amplify cognition»

Cette définition reste valable pour les deux sous-catégories de la visualisation. La première est la visualisation d’informations et la deuxième est la visualisation scien-tifique. Principalement, les deux sous-catégories ont été différenciées à l’aide de l’axe d’application s’il est scientifique alors nous parlons de la visualisation scientifique, sinon nous parlons de la visualisation d’informations.

La très grande variété et richesse des définitions existantes de la visualisation scien-tifique et particulièrement la visualisation scienscien-tifique interactive montre son intérêt

et son utilisation dans plusieurs disciplines. Dans le cadre des travaux effectués dans cette thèse, nous proposons et nous adoptons la définition suivante :

Définition 1 (Visualisation scientifique interactive) La visualisation scientifique interactive est une représentation visuelle de données scientifiques complexes couplée à un système inter-actif pour interagir avec et comprendre leur signification.

La visualisation scientifique interactive s’intéresse aux techniques permettant aux scientifiques d’extraire des connaissances à partir des résultats des simulations et des calculs. Elle permet de traduire par une approximation proche à la réalité la possibilité d’acquérir de nouvelles connaissances et de la compréhension de la complexité de cal-cul scientifique. Les données générées sont transmises aux scientifiques de telle sorte que leur utilisation efficace peut être faite en fonction des capacités analytiques hu-maines. La manipulation de la représentation visuelle des données générées se réalise, soit au cours de la simulation soit en phase de post-traitement avec une interaction, par la vision humaine et les principes psychologiques de la perception.

Les avantages attendus de la visualisation scientifique interactive sont une ana-lyse plus rapide et plus large, une meilleure compréhension spatiale et de nouveaux moyens d’exploration, de manipulation et d’analyse [133]. En résumé il y a :

— exploration et/ou exploitation des données scientifiques ; — acquisition de nouvelles connaissances ;

— contrôle de la qualité des simulations et des mesures ;

— modification des valeurs des paramètres et avoir la visualisation de données résultantes en temps réel.

Les applications de visualisation scientifique interactives [127,138,211] nécessitent des compétences afin de les concevoir et les développer. La plupart des applications interactives sont basées sur des simulations en plusieurs domaines comme la dyna-mique des fluides numérique, la biologie, la biochimie ou les géosciences. Dans la science de la vie, les applications interactives sont basées sur les simulations de dyna-mique moléculaire pour étudier des complexes moléculaires. Ces applications étudiées contiennent trois parties fonctionnelles, notamment l’interaction, la simulation et la vi-sualisation, qui sont très hétérogènes. La partie interaction comporte des périphériques, par exemple un Omni Phantom, envoyant des actions vers la partie simulation. CetteR dernière permet de faire tourner des calculs pour générer des données pouvant être affichées par la partie visualisation.

1.4 Conclusion

Dans ce chapitre, Nous avons introduit le contexte de notre travail en présentant, dans un premier temps, la définition de la visualisation scientifique, de la Réalité Virtuelle ainsi que ses principales composantes. Également la différence entre la Réalité

Virtuelle et la visualisation de données scientifiques avec le positionnement de cette dernière par rapport à la composante interaction.

Étant donné qu’une application de visualisation scientifique interactive contient les trois parties fonctionnelles citées auparavant, la conception d’une telle application reste inaccessible pour les non spécialistes et les scientifiques. Pour la rendre acces-sible, il faut donc proposer une approche formelle afin de favoriser la séparation des préoccupations et raisonner rigoureusement pour démontrer la validité de ces appli-cations. Il est nécessaire d’introduire un nouveau modèle de composants spécifique prenant en compte les caractéristiques de la visualisation scientifique interactive et de l’analyse visuelle (Visual Analytics). Le modèle présenté est basé sur de nouveaux moyens efficaces pour la construction et le déploiement d’applications dédiées à la visualisation scientifique interactive sur des architectures distribuées/parallèles.

Walking on water and developing software from a specification are easy if both are frozen.

Edward V BERARD

2

Sommaire

2.1 Introduction . . . . 19

2.2 Historique de la programmation par composants . . . . 20

2.3 Concepts de la programmation par composants . . . . 21 2.3.1 Composant logiciel . . . . 22 2.3.2 Interfaces . . . . 23 2.3.3 Connecteurs . . . . 24 2.3.4 Langage de description des architectures par composants . . . . 25

2.4 Modèles à composition spatiale . . . . 25 2.4.1 Modèles généraux . . . . 25 2.4.2 Modèles spécifiques . . . . 30 2.4.3 Analyse & Synthèse . . . . 33

2.5 Modèles à composition temporelle . . . . 35 2.5.1 Workflow . . . . 35 2.5.2 Systèmes de workflow scientifique . . . . 37 2.5.3 Analyse & Synthèse . . . . 45

2.6 Modèles à composition spatio-temporelle . . . . 45 2.6.1 Systèmes de composant logiciel & workflow scientifique . . . . 45 2.6.2 Analyse & Synthèse . . . . 48

2.7 La reconfiguration des architectures par composants . . . . 48 2.7.1 La reconfiguration centralisée . . . . 48 2.7.2 La reconfiguration auto-adaptative . . . . 50 2.7.3 Analyse & Synthèse . . . . 51

2.8 Conclusion. . . . 51

2.1 Introduction

Le but de ce chapitre est d’introduire les concepts fondamentaux, utilisés dans le cadre des architectures par composants. Généralement, la composition est un moyen de décrire la structure des applications et une telle structure reflète le raisonnement de la dimension de la programmation. Chaque modèle repose sur une dimension parmi

les deux dimensions orthogonales suivantes : l’espace et le temps. Le premier est dédié aux systèmes de composants logiciels et le deuxième est dédié pour les systèmes de workflow scientifique. L’intérêt de la composition spatiale est la définition de la struc-ture des applications scientifiques indépendamment des aspects temporels explicites. La composition temporelle a comme intérêt la définition des relations entre les com-posants c-à-d elle exprime un ordre d’exécution des comcom-posants. Pour bénéficier des avantages des deux approches de composition, la composition spatio-temporelle com-bine, à tous les niveaux d’une structure d’application, les deux types de composition présentés.

Ce chapitre est divisé en six sections. La première introduit le cadre historique de l’architecture par composants. La deuxième présente les concepts liés à la com-position spatiale avec des modèles exemples basés sur des composants. La troisième introduit, dans un premier temps, les concepts et les définitions utilisées permettant de construire une application basée sur un workflow. Et dans un deuxième temps, elle introduit des systèmes parmi les plus significatifs basés sur la composition tempo-relle. Dans la quatrième section nous présentons des modèles de composition spatio-temporelle. La sixième section présente quelques exemples représentatifs de reconfi-guration des architectures par composants. Enfin nous concluons ce chapitre.

2.2 Historique de la programmation par composants

La programmation par composants a émergé comme méthodologie de program-mation pour des systèmes complexes et distribués. D’une manière générale, ce type d’architecture logicielle a été développé en se basant sur des composants représentant des entités autonomes qui interagissent avec leur environnement à travers des inter-faces bien spécifiées et bien définies. Ces composants ne révèlent pas leur structure interne en particulier leur implémentation. Ce type de programmation favorise des caractéristiques comme la réutilisation, l’interchangeabilité, la séparation des préoccu-pations et la facilité de mise à jour.

Depuis les années 1990 et face à l’évolution rapide des exigences des systèmes et programmes informatiques, il était primordial de revoir et de réétudier les architec-tures logicielles existantes car elles ne répondaient pas aux besoins des chercheurs et des utilisateurs. Ces architectures logicielles décrivent d’une manière symbolique et schématique les différents éléments d’un ou de plusieurs systèmes, leurs intégrations et leurs interactions. Le terme d’architecture logicielle est utilisé depuis les années 1960[156], mais il s’est vraiment imposé qu’à partir des années 1990 [128]. La figure 2.1 montre son évolution depuis 1960. Chronologiquement l’architecture basée sur la programmation structurée [210] est apparue en premier, ensuite l’architecture basée sur la décomposition fonctionnelle et puis celle basée sur le mode de communication client-serveur [72,178]. Pendant la décennie 1980-1990, l’architecture 3-tiers, qui est une extension de l’architecture client-serveur [85], a vu le jour. Au fil des années, les

recherches académiques ont fait apparaître des architectures distribuées orientées ob-jets [66,157]. Enfin, la technologie des architectures logicielles à base de composants devient progressivement puissante et facilite le développement des systèmes [113]. Au-jourd’hui, les approches par composants sont en pleine phase d’accroissement, elles sont reconnues comme étant des approches puissantes permettant d’améliorer signi-ficativement la manière de développer. Elles consistent à utiliser une approche modu-laire de l’architecture d’une application. Cette dernière est construite en assemblant les composants compatibles entre eux.

Ces approches peuvent être classifiées en trois familles en fonction de la définition de la structure des applications et de l’ordonnancement des éléments construisant ces dernières :

— composition spatiale décrivant la connexion entre les composants lors de leur programmation en occupant des ressources matérielles qui peuvent être mé-moires vives et virtuelles, réseaux, processeurs, etc. Ce type de composition permet d’exprimer l’architecture d’une application en se basant sur une repré-sentation spatiale et en décrivant les composants qui doivent exister simultané-ment et peuvent communiquer indépendamsimultané-ment des contraintes temporelles explicites. La direction des communications est également orientée et elle est basée, dans la plupart des modèles, sur un utilisateur invoquant un service sur un fournisseur ;

— composition temporelle exprimant un raisonnement temporel avec une rela-tion d’ordre entre les composants pour fournir une planificarela-tion (control flow). La relation d’ordre est donnée par certaines structures de contrôle telles que des séquences, des branches ou des boucles essentiellement pour le passage de données d’un composant à l’autre ;

— composition spatio-temporelle intégrant les données qui traversent les com-posants (data flow) avec des fonctionnalités control flow pour une coordination précise. Elle permet de prendre en compte à la fois le couplage et l’optimisation de l’utilisation des ressources d’un système.

Plusieurs concepts sont utilisés dans ces approches. Ils sont présentés ainsi que leurs relations dans les sections suivantes.